Image processor and image processing method

ABSTRACT

The present invention provides an image processor and an image processing method which can minimize variation of color tone or density in an image after screen processing, even if semi-transparency has been specified. The image processor of the present invention generates semi-transparent image data by overlaying a semi-transparent object on the PDL data to be rendered semi-transparent. Subsequently, screen processing is performed on the semi-transparent image data, by dither processing. Subsequently it is determined whether or not to define the screen processed semi-transparent image data as the image data for printing. If the result of determination is No, halftone value of the semi-transparent object is modified to be larger than the current value.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image processor and an imageprocessing method, and more particularly, to an image processor and animage processing method for optimally processing drawing data on apersonal computer or the like.

2. Description of the Related Art

Recently, languages used for page description have made it possible tospecify transparency, from applications or the OS (Operation System), asan expression of overlaid objects in such a manner that an object drawnbelow is transparently visible. The above-mentioned language for pagedescription will be hereafter referred to as PDL (Page DescriptionLanguage).

Specification of transparency is meant to specify that an overlyingobject is rendered transparent so that an underlying object can be seenthrough the overlying object.

However, there may be a situation that, depending on the type of PDL,transparency specification commands are not supported, although theapplication or the OS has specified transparency in response to theuser's request. In such a case, instead of specifying transparency, thedegree of filling the object may be reduced by creating a filled portionand an unfilled portion through which the underlying object can be seen.Such processing may be used in place of specifying transparency,allowing the underlying object to be seen through. With this method, inother words, it is possible to execute a drawing command that allows theunderlying object to be visible as if the overlying object has becometransparent, even if the PDL does not support transparencyspecification.

As the specification used in this case for filling the object, a GraphicDevice Interface (GDI) command, which is one of the drawing commands ofWindows (registered trademark), for example, uses a pattern with reducedbrush patterns. Since this object with a reduced pattern is one which isspecified to be semi-transparent in the application, it will behereafter referred to as a “semi-transparent object”.

The above-mentioned related art will be described according to how aspecification is made in PowerPoint, a real application provided byMicrosoft Corporation. In the entire hole layout shown in FIG. 1, forexample, drawing, as shown in FIG. 2, a gray pattern as thesemi-transparent object on a hole 1 bearing the reference numeral 101may be effected as follows. The user specifies semi-transparency in theGUI 201 “autoshape format setting” shown in FIG. 2. Autoshape formatsetting allows a specification such that the underlying hole 1 can beseen through the gray pattern as shown in object 204, by specifying grayin the filling-color specification 202 as well as checking on thesemi-transparency specification 203 to specify semi-transparency.

The object 204, i.e., the semi-transparent object of FIG. 2, is actuallydrawn in a manner shown in FIG. 3. In order to first create a filledportion and an unfilled portion through which the underlying object canbe seen, according to the semi-transparency specification of the object,an object having a lattice pattern (semi-transparent object) 301 isdrawn where the degree of filling is reduced by a certain interval.Next, an object 302 is drawn, on which the object 301 will be overlaid.Finally, the two objects 301 and 302 are overlaid, resulting in anobject 303. As understandable from the result, the circle included inthe object 302 is drawn in a manner such that it is visible through thegray pattern whose filling-color is specified in the filling-colorspecification 202, whereby semi-transparency is achieved.

For reference, an exemplary case in which semi-transparency is notspecified is shown in FIG. 4. In FIG. 4, semi-transparency specificationof semi-transparency specification 203 is checked out by the userspecifying autoshape of GUI 201. Therefore, the hole 1 area of object101 is filled in gray, masking the underlying hole 1 area to beinvisible.

Additionally, the actual drawing situation in this case is shown in FIG.5. First, an object 501 filled in gray is drawn according to afill-in-gray specification, then an object 502 to be overlaid is drawnnext. Finally, overlaying the above-mentioned two objects 501 and 502results in an object 503 filled in gray. As can be seen from the result,since gray color is filled on the circle included in the object 502specified to be filled but not specified to be a semi-transparent, thecircle is not visible through the object 503.

The drawing data of FIGS. 3 and 5 goes through dither processing in theintermediate process of the printer and is printed out on paper or thelike. An example of binarized dither for use in dither processing in theintermediate process of the printer is shown in FIG. 6. The dither shownis an example having reduced screen ruling in order to smoothlyreproduce the gradation of the graphics. In addition, for simplicity,the case of a 64-gradation with a maximum value of 64 and also of abinarized dither is described here. It is needless to say that thedither may be different, depending on printer resolution, number ofgradations, or what base number to be used, and is not limited to theone used herein for explanation.

With each depicted numeric value of the dither corresponding to a pixel,the dither processing compares an input value and the dither value in apixel and binarizes the pixel into black if the input value is equal toor larger than the dither value. For example, an input signal,expressing an expanded portion of the object 303 of FIG. 3, is shown inFIG. 7. FIG. 8 shows the result of binarization by applying the ditherof FIG. 6 to the input signal shown in FIG. 7. As can be seen in FIG. 8,conventional dither processing eliminates the gray part of the object303 of FIG. 3, whereby only the circle portion is printed.

FIG. 9 illustrates the result of binarizing the object 503 of FIG. 5 byapplying the dither of FIG. 6 thereto. As illustrated, it may happenthat the resulting binarized positions, which are originally specifiedto be filled in gray and thus supposed to have several dots arrangedtherein, have no dots arranged therein. For example, as shown in FIG. 8,the background of the circle which is supposed to have dots arrangedtherein has no dots at all. This is because interference occurredbetween the dither processing in the intermediate process of the printerand the drawing pattern specified to be semi-transparent, whereby a partwhich was originally supposed to be filled is not filled. Althoughdensity may vary due to monochrome print here, color tone may vary inthe case of color print because a color dot which was supposed to beplaced on a supposed position is not formed.

As thus described, applying dither processing to a semi-transparentobject may result in absence of dots in a region on a semi-transparentobject where the dots were supposed to be formed. In other words, ditherprocessing may prevent expressing the original semi-transparent object.

In addition, since intermediate processes in a printer may differaccording to the type of printer, interference or moire may vary betweenthe above-mentioned drawing pattern specified to be semi-transparent andthe dither processing, resulting in varied color tone or density due todifference between machines.

Therefore, according to Japanese Patent Laid-Open No. 2006-254095bulletin as a conventional solution, pattern cycle and direction in theimage signal are detected in the output color space, and the presence ofmoire is determined by the detection result and the normally used screencycle and direction to switch screens as necessary. In other words,Japanese Patent Laid-Open No. 2006-254095 bulletin proposes a methodthat determines the part where moire due to interference is likely toappear by translating the PDL and frequency-analyzing each pixel of theresulting bit map data, and modifies the screen processing of that partto a high-frequency screen such as error diffusion processing.

However, with the method described in Japanese Patent Laid-Open No.2006-254095 bulletin, although a screen specification with alow-frequency and low screen ruling has been made in order to smoothlyreproduce an object specified to be filled in a uniform color, a gridpattern may be detected due to the semi-transparency specification, andscreen processing may be changed to error diffusion processing in orderto prevent occurrence of moire. Such a change to error diffusionprocessing may raise the frequency and degrade stability of the screen,which may result in increased roughness. In other words, the reducedscreen ruling, originally chosen with the purpose of smoothlyreproducing the object in a uniform color or gradation, is modified tohigh screen ruling, causing roughness against the intention of thedesigner and the user. In addition, executing by software thecomplicated frequency analysis processing for each and every pixel istime-consuming, whereas execution by hardware requires enormously largescale hardware. Furthermore, there was no way of preliminarily checkinghow the image would look like until it is printed out.

SUMMARY OF THE INVENTION

It is an object of the present invention, conceived in view of the aboveproblems, to provide an image processor and an image processing methodwhich can minimize variation of color tone or density in the imagesafter screen processing, even if semi-transparency has been specified.

According to a first aspect of the present invention, there is providedan image processor which comprises, a determination unit for determiningwhether or not a semi-transparent object is included in an image to beprinted, and a control unit for controlling so that the result of ditherprocessing on the image to be printed is displayed on a display screenif it is determined by the determination unit that a semi-transparentobject is included, and controlling so that the result of ditherprocessing on the image to be printed is not displayed on a displayscreen if it is determined by the determination unit that asemi-transparent object is not included.

According to a second aspect of the present invention, there is providedan image processor which comprises, a dither processing unit forexecuting dither processing on a semi-transparent object, an acquisitionunit for acquiring the difference between the density of the imageobtained by the dither processing and the density of thesemi-transparent object, and a modification unit for modifying thehalftone value of the semi-transparent object if the difference acquiredby the acquisition unit exceeds a threshold value.

According to a third aspect of the present invention, there is providedan image processor which comprises, a determination unit for determiningwhether or not an image with periodically varying density is included inthe image to be printed, and a control unit for controlling so that theresult of dither processing on the image to be printed is displayed on adisplay screen if it is determined by the determination unit that animage with periodically varying density is included, and controlling sothat the result of dither processing on the image to be printed is notdisplayed on a display screen if it is determined by the determinationunit that an image with periodically varying density is not included.

According to a fourth aspect of the present invention, there is providedan image processor which comprises, a generation unit for generatingimage data having a semi-transparent object overlaid thereon byoverlaying a semi-transparent object on the image data, an executionunit for executing screen processing by dither processing on the imagedata having the semi-transparent object overlaid thereon, adetermination unit for determining whether or not to define the screenprocessed image data having a semi-transparent object overlaid thereonas image data for printing, and a modification unit for modifying thehalftone value of the semi-transparent object to be larger than thecurrent value if the determination unit determines not to define theimage data having a semi-transparent object overlaid thereon as imagedata for printing, wherein if the halftone value is modified by themodification unit, the generation unit generates image data having thesemi-transparent object overlaid thereon by overlaying on the image dataa semi-transparent object whose halftone value has been modified.

According to a fifth aspect of the present invention, there is providedan image processor which comprises, a dither processing unit forexecuting dither processing on a semi-transparent object whose halftonevalue has been set, a calculation unit for calculating the differencebetween the density of the semi-transparent object after the ditherprocessing and the density of the semi-transparent object before thedither processing, an input unit for setting higher the halftone valueof the semi-transparent object and inputting the semi-transparent objectinto the dither processing unit again, if the difference is larger thanor equal to a threshold value, and an output unit for outputting thedither-processed semi-transparent object, if the difference is smallerthan a threshold value.

According to a sixth aspect of the present invention, there is providedan image processor which comprises, a dither processing unit forexecuting dither processing on a semi-transparent object whose halftonevalue has been set, a calculation unit for calculating the differencebetween the density of the semi-transparent object after the ditherprocessing and the density of the semi-transparent object before thedither processing, an input unit for setting higher the halftone valueof the semi-transparent object and inputting the semi-transparent objectinto the dither processing unit again, if the difference is larger thanor equal to a threshold value, and an output unit for outputting thesemi-transparent object before the dither processing, if the differenceis smaller than a threshold value, wherein the semi-transparent objectwhich has been output by the output unit is dither processed in theoutput destination.

According to a seventh aspect of the present invention, there isprovided an image processing method which comprises, a determinationprocess for determining whether or not a semi-transparent object isincluded in an image to be printed, and a control process forcontrolling so that a result of dither processing on the image to beprinted is displayed on a display screen if it is determined by thedetermination process that a semi-transparent object is included, andcontrolling so that a result of dither processing on the image to beprinted is not displayed on a display screen if it is determined by thedetermination process that a semi-transparent object is not included.

According to a eighth aspect of the present invention, there is provideda computer program for causing a computer to execute the imageprocessing method according to the seventh aspect.

According to a ninth aspect of the present invention, there is provideda storage medium having a computer readable program stored therein andhaving the computer program according to the eighth aspect storedtherein.

According to the present invention, it is possible to minimize variationof the color tone or density by modifying the halftone value of thehalftone pattern of a semi-transparent object. Additionally, by notchanging the screen processing, it is possible to enhancereproducibility of a semi-transparent object without defying theintention of the designer and the user whose original purpose has beento smoothly reproduce the object in a uniform color and gradation.Furthermore, because only the density of the semi-transparent objectneeds to be adjusted without requiring any advanced processing such asconventional frequency analysis, processing by software is nottime-consuming and a simple circuit can be used when processing byhardware without enlarging the hardware scale.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments (with reference to theattached drawings).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an object which can be specified to besemi-transparent, according to prior art;

FIG. 2 is an explanatory illustration of a method of specifyingsemi-transparency in a predefined application, according to prior art;

FIG. 3 illustrates how an object specified to be semi-transparent isformed when semi-transparency is specified;

FIG. 4 is an explanatory illustration of filling an object whensemi-transparency is not specified in a predefined application,according to prior art;

FIG. 5 illustrates how a filled object is formed when semi-transparencyis not specified, according to prior art;

FIG. 6 illustrates an example of binarized dither for use in ditherprocessing in the intermediate process of an image forming device suchas a printer, according to prior art;

FIG. 7 illustrates an input signal expressing an expanded portion of theobject 303 of FIG. 3;

FIG. 8 illustrates the result of binarization by applying the dither ofFIG. 6 to the input signal shown in FIG. 7;

FIG. 9 illustrates the result of binarizing the object 503 of FIG. 5 byapplying the dither of FIG. 6 thereto;

FIG. 10 is a flow chart illustrating the procedure of creating imagedata for printing according to an embodiment of the present invention;

FIG. 11 illustrates an exemplary view displayed on the display unitaccording to an embodiment of the present invention;

FIG. 12 is an explanatory illustration of a table for use in the colorvalue conversion according to an embodiment of the present invention;

FIG. 13 illustrates an exemplary view displayed on the display unitaccording to an embodiment of the present invention;

FIG. 14 illustrates semi-transparent image data after the halftone valueof the semi-transparent object according to an embodiment of the presentinvention has been converted;

FIG. 15 illustrates the result of binarization by applying the dithershown in FIG. 6 to the semi-transparent image data shown in FIG. 14;

FIG. 16 illustrates an exemplary view displayed on the display unitaccording to an embodiment of the present invention;

FIG. 17 illustrates semi-transparent image data after the halftone valueof the semi-transparent object according to an embodiment of the presentinvention has been converted;

FIG. 18 illustrates the result of binarization by applying the dithershown in FIG. 6 to the semi-transparent image data shown in FIG. 17;

FIG. 19 is a flow chart illustrating the procedure of creating imagedata for printing according to an embodiment of the present invention;

FIG. 20 is a flow chart illustrating the procedure of creating imagedata for printing according to an embodiment of the present invention;

FIG. 21 is a flow chart illustrating the procedure of creating imagedata for printing according to an embodiment of the present invention;

FIG. 22 illustrates an exemplary view displayed on the display unitaccording to an embodiment of the present invention;

FIG. 23 illustrates how the object specified to be semi-transparent iscreated when semi-transparency is specified in the RGB colors, accordingto an embodiment of the present invention;

FIG. 24 is an explanatory illustration of a table for use in the colorvalue conversion according to an embodiment of the present invention;and

FIG. 25 is block diagram illustrating a general arrangement of thecontrol system included in the image processor in an embodiment of thepresent invention.

DESCRIPTION OF THE EMBODIMENTS

In the following, embodiments of the present invention will be describedin detail referring to the drawings. In the drawings described below,identical reference numerals are assigned to elements having identicalfunctions and duplicate description is omitted thereof.

FIG. 25 is a block diagram illustrating the general structure of thecontrol system in the image processor according to an embodiment of thepresent invention.

In FIG. 25, the controller 10 is a control unit for controlling theentire image processor. The controller 10 comprises CPU 11 for executinga variety of processing such as operations, controls, differentiations,or the like. In addition, the controller 10 comprises a ROM 12 forstoring control programs of processes to be executed by the CPU 11,which will be described below referring to FIGS. 10, 19-21, and a RAM 13for temporarily storing the data being processed and the input data ofthe CPU 11.

The controller 10 has connected thereto an input operation unit 14including a keyboard or a variety of switches for inputting predefinedcommands or data, and a display unit 15 for displaying a variety ofinformation such as input or setting status of the image processor.

The image processor can display a GUI 201 shown in FIG. 2 on the displayunit 15. When specifying semi-transparency in a variety of application,the user performs a predefined operation for the filling-colorspecification 202 and the semi-transparency specification 203, which areincluded in the GUI 201, by operating the input operation unit 14. Ifsemi-transparency is specified by the user via the input operation unit14, the image processor overlays a semi-transparent object (object 301in FIG. 3) on the image data to be rendered semi-transparent (object 302in FIG. 3), whereby image data for printing is provided. Thus, in thepresent specification, image data having a semi-transparent objectoverlaid thereon will be referred to as “semi-transparent image data”.

Here, in an embodiment of the present invention, the image processor mayacquire image data using any method. For example, the user may operatethe input operation unit 14 and create the data on a predefinedapplication. Additionally, if a reader of a removable medium such as amagnetic disk or an optical disk is provided, image data may be inputvia the medium. Furthermore, if an image reading device such as ascanner is built-in or connected via a network, the image data may beacquired by inputting the image data which has been read by theabove-mentioned image reading device.

Additionally, in an embodiment of the present invention, the imageprocessor reads out a program from the ROM 12 and creates image data(PDL data) for printing by executing a processing described belowreferring to FIGS. 10, 19-21. Then the created image data for printingis transmitted to an image forming device such as a printer. The imageforming device executes printing, based on the transmitted image datafor printing. The image forming device may either be integrated with theimage processor or provided separately via a network or the like.

First Embodiment

The procedure of creating image data for printing according to presentembodiment will be described using the flow of FIG. 10. Here, forsimplicity, the case of monochromatic images will be described in thepresent embodiment.

First, on a predefined application included in the image processor, theuser specifies, via the input operation unit 14, an image to be printedamong the images displayed on the display unit 15. Based on thespecification, the CPU 11 acquires PDL data of the specified image usinga known method.

In this occasion the user can specify semi-transparency using the GUI201 shown in FIG. 2. If, for example, the user specifiessemi-transparency by the filling-color specification 202 andsemi-transparency specification 203, the CPU 11 defines the PDL data ofthe image specified above as the PDL data to be renderedsemi-transparent. The CPU 11 also reads out a semi-transparent object(PDL data) which is a predefined filling pattern such as a lattice-likepattern, preliminarily stored in the ROM 12.

Specifically, upon receiving a command from the user to create imagedata for printing, the CPU 11 stores the PDL data of the specified imagein the RAM 13 as the PDL data to be defined as image data for printingand proceeds to step 1001, if semi-transparent has not been specified bythe GUI 201 or the like. On the other hand, if semi-transparency hasbeen specified by the GUI 201 or the like, the CPU 11 defines the PDLdata of the specified image as the PDL data to be renderedsemi-transparent, acquires a semi-transparent object from the ROM 12,and stores the two data in the RAM 13. Then, the CPU 11 defines the PDLdata to be rendered semi-transparent and the semi-transparent object asthe PDL data to be defined as image data for printing, and proceeds tostep 1001.

In step 1001, the CPU 11 executes halftone value setting (adjusted colorvalue setting). In this setting, the value is set using the patterndensity adjustment bar 1101 shown in FIG. 11. In other words, the CPU 11determines the value which has been set in the pattern densityadjustment bar 1101 as the initial value of the adjusted color value,and stores the initial value of the determined adjusted color value inthe RAM 13. The adjusted color value corresponds to the halftone valueof the semi-transparent object with a predefined ratio. Therefore,modification of the adjusted color value modifies the halftone value,according to the modification. Here, the middle of the pattern densityadjustment bar 1101 in FIG. 11 indicates the unadjusted state.

Here, in a semi-transparent object, ON pixels and OFF pixels coexist inthe object. Existence ratio of ON pixels and OFF pixels depends on thetype of semi-transparent object.

For example, if the type of semi-transparent object is A, existenceratio of ON pixels is 80%, whereas existence ratio of OFF pixels is 20%.If, alternatively, the type of semi-transparent object is B, existenceratio of ON pixels is 60%, whereas existence ratio of OFF pixels is 40%.Existence ratio of ON pixels and existence ratio of OFF pixels areconstant as long as the type of semi-transparent object remains thesame.

For example, in the present invention, although color value adjustmentis executed in S1905 as will be described below, ratio of ON pixels andratio of OFF pixels do not change because the type of semi-transparentobject is not modified in S1905, even if this color value adjustment isexecuted.

Here, an OFF pixel refers to a transparent pixel (unfilled pixel).

On the other hand, an ON pixel refers to a non-transparent pixel (filledpixel).

Additionally, the degree of darkness of the ON pixel is expressed by avalue called halftone value.

Shipment may be made with the initial state staying in the middle, orunadjusted, so that it is possible to preliminarily set the adjustmentaccording to the user's preference. In other words, the user maypreliminarily set a desired value on the pattern density adjustment bar1101 using the input operation unit 14 and let the CPU 11 determine theinitial value of the adjusted color value according to the setting. Asthus described, step 1001 may be skipped when the initial value of theadjusted color value has been preliminarily set.

Next, in step 1002, the CPU 11 analyzes the PDL data to be defined asimage data for printing with regard to whether or not a semi-transparentobject is included in the PDL data (image data) created by anapplication as shown in FIG. 2.

In the present embodiment, when specifying semi-transparency,semi-transparent image data is not yet created at this point, which willbe created by overlaying the PDL data to be rendered semi-transparentand the semi-transparent object. However, because these two data will belater overlaid and turned into the semi-transparent image data (imagedata for printing), they will turn into the PDL data to be defined asimage data for printing.

As a specific processing of step 1002, the CPU 11 extracts thesemi-transparent object of the object 301 shown in FIG. 3, for example.In other words, the CPU 11 determines whether or not a semi-transparentobject is included in the PDL data to be defined as image data forprinting, the PDL data being stored in the RAM 13, and if included,determines that the image data which is about to be printed has beenspecified to be semi-transparent. Then, the CPU 11 acquires asemi-transparent object from the RAM 13, and detects the halftonepattern of the semi-transparent object.

If, on the other hand, a semi-transparent object is not included in thePDL data to be defined as image data for printing, the CPU 11 determinesthat semi-transparency has not been specified and defines, as image datafor printing, the PDL data which is supposed to be defined as image datafor printing, then simply terminates the processing.

When a semi-transparent object is detected, the CPU 11 extracts, in step1003, the color value (halftone value) for filling the semi-transparentobject. For the object 301 of FIG. 3, for example, the halftone value is16 as shown in FIG. 7.

Next, in step 1004, the CPU 11 converts the color value (halftone value)of the current semi-transparent object so that it turns into anintermediate adjustment value corresponding to the initial value of theadjusted color value, which is the pattern density adjustment value thathas been set in step 1001. Here, in the case where the process iscontinuing from step 1008, as will be described below, the color valueof the current semi-transparent object will be converted so that itturns into an intermediate adjustment value corresponding to the colorvalue adjusted in step 1008. If this step is continuing from step 1003,the halftone value of the current semi-transparent object is thehalftone value acquired in step 1003. Alternatively, if this step iscontinuing from step 1008, it is the halftone value of thesemi-transparent object before screen processing, the object beingstored in the RAM 13. In other words, the CPU 11 converts, according tothe adjusted color value acquired in step 1001 or 1008, the color valuefrom the input color value into the output color value, using aconversion table shown in FIG. 12. Here, because a processing subsequentto step 1003 is described, a table bearing the reference numeral 1201 isfirst set to the initial value of the adjusted color value which hasbeen set in step 1001, and the input value 16 is simply output as being16. In this manner, the halftone value of the semi-transparent object isconverted into the output value, whereby the halftone value of thesemi-transparent object before screen processing is acquired.

The CPU 11 generates semi-transparent image data shown in FIG. 7 byoverlaying, as shown in FIG. 3, the semi-transparent object whosehalftone value has been converted on the PDL data to be renderedsemi-transparent. The CPU 11 then extracts, from the RAM 13, thesemi-transparent object and the PDL data to be rendered semi-transparentto generate semi-transparent image data. In this occasion, thesemi-transparent object and the PDL data to be rendered semi-transparentare not deleted from the RAM 13 and remain in the RAM 13. In otherwords, the semi-transparent image data is generated, with thesemi-transparent object whose halftone value has been converted and thePDL data to be rendered semi-transparent being preserved in the RAM 13.

As thus described, it is possible to render the desired image for outputsemi-transparent by preserving the semi-transparent object whosehalftone value has been converted and the PDL data to be renderedsemi-transparent in the RAM 13, even if the image is determinedunacceptable, i.e., not OK in step 1007 described below. In other words,it is possible to create semi-transparent image data using asemi-transparent object whose halftone value has been modified, even ifthe image is determined not-OK as described above and the halftone valueis modified.

In the present embodiment, as will be described below, it is importantto create semi-transparent image data for each halftone value which hasbeen adjusted (modified) and determine whether or not thesemi-transparent image data is acceptable and, if not, adjust thehalftone value again. In other words, it is necessary to createsemi-transparent image data every time the halftone valued is adjusted.Therefore, in order to create semi-transparent image data for each ofthe above-mentioned adjustment, it is necessary to preserve, at leastduring the processing, the PDL data to be rendered semi-transparentwhich will be the base of the semi-transparent image data.

Here, a semi-transparent object remaining in the RAM 13 will be referredto as “semi-transparent object before screen processing”. Once thesemi-transparent object before screen processing is generated, it willnot be deleted at least from the RAM 13 until the generatedsemi-transparent image data is considered acceptable, i.e., OK, and itturns into image data for printing. This is because it turns into theoriginal semi-transparent object for creating the semi-transparentobject of the halftone value corresponding to the adjusted color valuewhich will be set in step 1008 described below.

Next, in step 1005, the CPU 11 executes screen processing on thegenerated semi-transparent image data by dither processing provided inthe image processor. The screen processing is executed via binarizationusing the dither shown in FIG. 6, for example. Since binarization hasalready been described in the conventional example, detailed descriptionwill be omitted here. The result of binarization turns out to be thedata shown in FIG. 8, and the CPU 11 displays the data (semi-transparentimage data after screen processing) on the display unit 15 (step 1006).

The image displayed on the display unit 15 is like one shown in FIG. 11,for example. As can be seen from FIG. 11, in the part which wasoriginally supposed to look like the object 303 of FIG. 3, thebackground gray color of the circle has disappeared. Then the usercompares it with the original image (image specified by the user) andexamines whether or not it is acceptable, i.e., OK. In response to theuser's verification, the CPU 11 determines whether or not the presentresult is OK (step 1007). If unacceptable, i.e., not OK (the case ofNo), upon the user's inputting the determination result (user's inputwith regard to the image data displayed on the display unit 15) via theinput operation unit 14, the CPU 11 proceeds to step 1008 according tothe input. In this manner, the CPU 11 receives the user's input withregard to the image data displayed on the display unit 15. If Yes, theuser presses the close button 1102 by operating the input operation unit14. In response to the pressing of the button, the CPU 11 stopsdisplaying on the display unit 15 as shown FIG. 11 and terminates theprocessing. Therefore, in this occasion, the semi-transparent image datashown in FIG. 11 turns into image data for printing.

In the present embodiment, the CPU 11 thus determines whether or not todefine the semi-transparent image data which has been screen processedas image data for printing.

In the present embodiment, since the result of screen processing ispresented to the user as thus described, the user can verify beforeprinting that the desired semi-transparency is realized. If the user isnot satisfied with the presented result, the user can further require anadjustment processing of the semi-transparent object and preview thescreen processing on the processing result, whereby a high-qualitysemi-transparency that satisfies the user can be realized.

Additionally, depending on the use case, the user may be satisfied evenif high-quality semi-transparency has not been realized. According tothe present embodiment, since the user can verify the result of screenprocessing before printing every time the halftone value of thesemi-transparent object is converted, semi-transparency with a qualitythat matches the user's request can be realized. Therefore, it can copewith situations in which faster processing is required in exchange for asomewhat lower semi-transparency quality, whereby enhancing the user'sconvenience.

If the displayed image is different from the original image andunacceptable, i.e., No, the CPU 11 adjusts, in step 1008, the adjustedcolor value of the semi-transparent object which has been used for thegenerated semi-transparent image data. For example, the user operatesthe pattern density adjustment bar 1101 using the input operation unit14 and deepens the default density adjustment of FIG. 11 by one levelsuch as the value 1301 of FIG. 13. When such a modification of theadjusted color value is instructed by the user, the CPU 11 acquires theadjusted color value corresponding to the user's input.

Subsequently, in step 1004 again, the CPU 11 converts the color value(halftone value) of the semi-transparent object stored in the RAM 13before screen processing so that it turns into a halftone valuecorresponding to the adjusted color value acquired in step S1008. Insuch a color value conversion, a table bearing the reference numeral1202 in FIG. 12 is applied, according to the adjusted color value whichhas been set deeper (set to be +1) by the user. Then, the halftone value16 of the semi-transparent object stored in the RAM 13 before screenprocessing, which is the input value of the table 1202, is converted to20. Therefore, the CPU 11 converts (adjusts) the halftone value of thesemi-transparent object stored in the RAM 13 before screen processingfrom 16 to 20. The halftone value 20 will be the halftone value of thesemi-transparent object before screen processing. At this point, thesemi-transparent object before screen processing is still stored in theRAM 13.

The CPU 11 generates semi-transparent image data, based on thesemi-transparent object whose halftone value has been converted and thePDL data to be rendered semi-transparent stored in the RAM 13. Thegenerated semi-transparent image data looks like that shown in FIG. 14.It is needless to say that, in this occasion, the semi-transparentobject before screen processing and the PDL data to be renderedsemi-transparent are stored in the RAM 13.

Next, in step 1005, the CPU 11 executes screen processing by binarizingthe semi-transparent image data shown in FIG. 14 using the dither shownin FIG. 6. The result of binarization turns into the data shown in FIG.15, and the CPU 11 displays the data on the display unit 15 (step 1006).In this occasion, the image displayed on the display unit 15 looks likethat shown in FIG. 13, for example, as a result of density adjustment.

Subsequently, in step 1007, the user compares the displayed image withthe original image to verify that it is acceptable, i.e., OK. The CPU 11receives the verification result via the input operation unit 14 anddetermines, based on the received result, whether or not the currentresult is OK.

Also in this occasion, if the displayed image is not as close to thedensity of the background of the circle as the original image and thusunacceptable, i.e., No, the CPU 11 proceeds to step 1008 and adjusts theadjusted color value. For example, the user operates the pattern densityadjustment bar 1101 using the input operation unit 14 and deepens thedensity adjustment which is +1 in FIG. 13 by one level to be +2 such asthe value 1601 of FIG. 16. When such a modification of the adjustedcolor value is instructed by the user, the CPU 11 acquires the adjustedcolor value corresponding to the user's input.

Subsequently, in step 1004 again, the CPU 11 converts the color value(halftone value) based on the adjusted color value acquired in stepS1008. In such a color value conversion, a table bearing the referencenumeral 1203 in FIG. 12 is applied, according to the adjusted colorvalue which has been set deeper (set to be +2) by the user. Then, thehalftone value 16 of the semi-transparent object stored in the RAM 13before screen processing, which is the input value of the table 1203, isconverted to 24. Therefore, the CPU 11 converts (adjusts) the halftonevalue of the semi-transparent object stored in the RAM 13 before screenprocessing from 20 to 24. The halftone value 240 will be the halftonevalue of the semi-transparent object before screen processing. At thispoint, the semi-transparent object before screen processing is stillstored in the RAM 13.

The CPU 11 generates semi-transparent image data, based on thesemi-transparent object whose halftone value has been converted and thePDL data to be rendered semi-transparent stored in the RAM 13. Thegenerated semi-transparent image data looks like that shown in FIG. 17.It is needless to say that, in this occasion, the semi-transparentobject before screen processing and the PDL data to be renderedsemi-transparent are stored in the RAM 13.

Next, in step 1005, the CPU 11 executes screen processing by binarizingthe semi-transparent image data shown in FIG. 17 using the dither shownin FIG. 6. The result of binarization turns into the data shown in FIG.18, and the CPU 11 displays the data on the display unit 15 (step 1006).In this occasion, the image displayed on the display unit 15 looks likethat shown in FIG. 16, for example, as a result of density adjustment.

In step 1007, the user compares the displayed image with the originalimage to verify that it is acceptable, i.e., OK. The CPU 11 receives theverification result via the input operation unit 14 and determines,based on the received result, whether or not the current result is OK.With the image shown in FIG. 16, since the gray part of the backgroundof the circle becomes visible like the object 303 of FIG. 3, that is OKand Yes, the user presses the close button 1102 by operating the inputoperation unit 14 to terminate the print preview, then terminates theprocessing and proceeds to printing. Therefore, in this occasion, thesemi-transparent image data shown in FIG. 16 turns into image data forprinting.

As thus described, processes from generating semi-transparent image datato adjusting the color value are repeated until it is determined todefine the screen processed semi-transparent image data as image datafor printing.

In the present embodiment, as thus described, it becomes possible tooutput an image with a density close to the original by simply modifyingthe density of halftone pattern (halftone value) of the semi-transparentobject as desired. Additionally, since dither of the screen processingis not modified, it is possible to simply apply the dither representingthe intention of the designer or the user who is attempting, as theoriginal purpose, to smoothly reproduce the image in a uniform color orgradation, and reproduce the image without degrading the reproducibilityof the semi-transparent object. Furthermore, because only the density ofthe semi-transparent object needs to be adjusted using a simpleconversion such as that shown in FIG. 12 without requiring any advancedprocessing such as conventional frequency analysis, processing bysoftware is not time-consuming, and when processing by hardware, asimple circuit can be used without scaling-up the hardware.

Second Embodiment

Although the first embodiment let the user determine the pattern densityadjustment by displaying the image after screen processing, an exampleof automating the above-mentioned user's determination will be describedwith the present embodiment using the flow of FIG. 19. Here, for eachstep of FIG. 19, like reference numerals are assigned to the stepssimilar to those in FIG. 10 and detailed description is omitted.

First, in step 1901, the CPU 11 executes default setting of the initialvalue of the adjusted color value. Specifically, an unadjusted state isprovided by setting the adjusted color value equal to 0. The CPU 11stores the adjusted color value in the RAM 13.

Next, in step 1002, the CPU 11 analyzes the PDL data to be defined asimage data for printing with regard to whether or not a semi-transparentobject is included in the PDL data created by an application as shown inFIG. 2. Specifically, as described in the first embodiment, extractionof the semi-transparent object of the object 301 shown in FIG. 3 isexecuted.

However, if there is no semi-transparent object, the process is simplyterminated.

When a semi-transparent object is detected, the CPU 11 extracts, in step1003, the color value (halftone value) for filling the semi-transparentobject extracted in step 1002. With the object 301 of FIG. 3, forexample, the value is 16 as shown in FIG. 7.

Next, in step 1004, the CPU 11 converts, according to the initial valueof the adjusted color value preliminarily provided with a defaultsetting in step 1901, the color value from the input color value intothe output color value, using a conversion table shown in FIG. 12. Here,the table bearing the reference numeral 1201 is set as the default tablewhich has been set up in step 1901, and the input value 16 is simplyoutput as being 16. In this manner, the halftone value of thesemi-transparent object is converted into the output value, whereby thehalftone value of the semi-transparent object before screen processingis acquired.

Subsequently, the CPU 11 generates semi-transparent image data byoverlaying the semi-transparent object whose halftone value has beenconverted and the PDL data to be rendered semi-transparent. In thisoccasion, the semi-transparent object and the PDL data to be renderedsemi-transparent are not deleted from the RAM 13 and remain in the RAM13. Here, the semi-transparent object remaining in the RAM 13 is thesemi-transparent object before screen processing.

Next, in step 1902, the CPU 11 calculates the density of a predefinedrange of the generated semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 7, and stores it in the RAM 13 as densityA. In the case of FIG. 7, there are a total of 3328 levels formulti-value 64 gradations, and the number of dots that will be ideallyarranged when binarized is 3328/64=52, resulting in a density of A=52.The density A is the number of dots that will be arranged (number offirst dots) in a predefined range of semi-transparent image data beforescreen processing. Here, this step is passed through if density A isalready acquired, such as when the process is continuing from step 1008.

Next, in step 1005, the CPU 11 executes screen processing on thegenerated semi-transparent image data by dither processing provided inthe image processor. Binarization is executed using the dither shown inFIG. 6, for example. Since binarization has already been described inthe conventional example, detailed description will be omitted here. Theresult of binarization turns out to be the data shown in FIG. 8(semi-transparent image data after screen processing).

Next, in step 1903, the CPU 11 calculates the density of a predefinedrange of the binarized semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 8, and stores it in the RAM 13 as densityB. In the case of FIG. 8, the number of dots that will be arranged whenbinarized is 24, resulting in a density of B=24. The density B is thenumber of dots that will be arranged (number of second dots) in apredefined range of semi-transparent image data after screen processing.

Next, in step 1904, the CPU 11 compares the number of dots within apredefined range of the semi-transparent image data before screenprocessing with that of the semi-transparent image data after screenprocessing, and calculates the difference between the input value(density A) and the output value (density B). Then, the absolute valueof the difference is defined as the differential. Given the above, it isdetermined whether or not the differential is equal to or larger than apredefined value (threshold value). In other words, the CPU 11 readsdensity A and density B from the RAM and calculates the absolute value(differential) of the difference between density A and density B. Then,the CPU 11 determines whether or not the absolute value of thecalculation result is equal to or larger than a predefined value, anddetermines whether or not the screen processed semi-transparent imagedata should be defined as image data for printing. It is needless to saythat, being equal to or larger than a threshold value means that it isequal to or larger than the threshold value, and not being equal to orlarger than a threshold value means that it is smaller than thethreshold value.

In the following description, the predefined value is assumed to be 5.Here, density A=52 and density B=24, thus the absolute value of thedifference between the input value and the output value is 28, whichexceeds the predefined value of 5.

Next, in step 1905, the CPU 11 adjusts the color value automatically byincreasing the current adjusted color value of the semi-transparentobject only by a predefined value. In other words, the CPU 11 increasesthe adjusted color value stored in the RAM 13 by +1.

Along with this increase, the CPU 11 sets up, in step 1004, the table1202 of FIG. 12 as the table of adjusted color values which have beenincreased by +1 in step 1905, and modifies the input value from 16 to20. Therefore, the CPU 11 converts (adjusts) the halftone value of thesemi-transparent object stored in the RAM 13 before screen processingfrom 16 to 20. At this point, the semi-transparent object before screenprocessing is still stored in the RAM 13.

As thus described, if the differential of density is larger than orequal to the threshold value, the input value of the original (beforedither processing) semi-transparent object is adjusted to be higher suchas from 16 to 20.

Subsequently, the CPU 11 generates the semi-transparent image data byoverlaying the semi-transparent object whose halftone value has beenconverted (adjusted higher, reset higher) and the PDL data to berendered semi-transparent. In this manner, the semi-transparent imagedata is generated again from the semi-transparent object. Of course thesemi-transparent image data is generated at this point using thesemi-transparent object after its halftone value has been modified. Itis also needless to say that the semi-transparent object before screenprocessing and the PDL data to be rendered semi-transparent are storedin the RAM 13.

Although the CPU 11 proceeds to step 1902 next, the step is passedthrough in this occasion since density A has already been acquired.

Next, in step 1005, the CPU 11 executes screen processing on thegenerated semi-transparent image data by dither processing provided inthe image processor. Similarly with the previous round, binarization isexecuted using the dither shown in FIG. 6. The result of binarizationturns out to be the data shown in FIG. 15. As thus described, if thedifferential is larger than or equal to the threshold value, thesemi-transparent object is input to step 1005 again that executes ditherprocessing, via steps 1004 and 1902.

Next, in step 1903, the CPU 11 calculates the density of a predefinedrange of the generated semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 15, and updates the previous value storedin the RAM 13 with the result of calculation as density B. In the caseof FIG. 15, the number of dots that will be arranged when binarized is40, resulting in a density of B=40.

Next, in step 1904, the CPU 11 compares the number of dots within apredefined range of the semi-transparent image data before screenprocessing with that of the semi-transparent image data after screenprocessing, and determines whether or not the absolute value of thedifference is equal to or larger than a predefined value. Here, densityA=52 and density B=40, thus the absolute value of the difference betweenthe input value and the output value is 12, which exceeds the predefinedvalue of 5.

Then the CPU 11 proceeds to step 1905 again, and increases the adjustedcolor value from the previous round by a predefined value of +1. Thatis, in addition to the previous round, the total increment becomes +2.

Next, in step 1004, the CPU 11 sets up the table 1203 of FIG. 12 as thetable of adjusted color values which have been increased by +2 in step1905, and modifies the input value from 16 to 24. Therefore, the CPU 11converts (adjusts) the halftone value of the semi-transparent objectstored in the RAM 13 before screen processing from 16 to 24. At thispoint, the semi-transparent object before screen processing is stillstored in the RAM 13.

Subsequently, the CPU 11 generates semi-transparent image data byoverlaying the semi-transparent object whose halftone value has beenconverted and the PDL data to be rendered semi-transparent. It isneedless to say that, in this occasion, the semi-transparent object andthe PDL data to be rendered semi-transparent are stored in the RAM 13.

Although the CPU 11 proceeds to step 1902 next, the step is passedthrough in this occasion since density A has already been acquired.

Next, in step 1005, the CPU 11 executes screen processing on thegenerated semi-transparent image data. Similarly with the previousround, binarization is executed using the dither shown in FIG. 6. Theresult of binarization turns out to be the data shown in FIG. 18.

Next, in step 1903, the CPU 11 calculates the density of a predefinedrange of the binarized semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 18, and updates the previous value storedin the RAM 13 with the result of calculation as density B. In the caseof FIG. 18, the number of dots that will be arranged when binarized is56, resulting in a density of B=56.

Next, in step 1904, the CPU 11 compares the number of dots within apredefined range of the semi-transparent image data before screenprocessing with that of the semi-transparent image data after screenprocessing, and determines whether or not the difference between theinput value and the output value is equal to or larger than a predefinedvalue. Here, density A=52 and density B=56, thus the difference betweenthe input value and the output value is 4, which is smaller than thepredefined value of 5. Now that the absolute value of the differencebetween density A and density B has eventually become smaller than thepredefined value of 5, the CPU 11 terminates the processing and proceedsto printing, although not shown. In other words, the CPU 11 defines thesemi-transparent image data as image data for printing, since the aboveabsolute has become smaller than the predefined value.

As thus described, in the present embodiment, the CPU 11 compares thenumber of dots within a predefined range of the semi-transparent imagedata before screen processing with that of the semi-transparent imagedata after screen processing, and determines whether or not thedifference between the input value and the output value is equal to orlarger than a predefined value. The CPU 11 then modifies the halftonevalue of the semi-transparent object so that the difference is withinthe predefined value. Therefore, in addition to the effect of the firstembodiment, the user can be spared the trouble of determining whether ornot the result is desirable with the help of automated determination.

Additionally, the criterion of the above automated determination can becontrolled by modifying the predefined value (5 in the abovedescription) to be compared with the absolute value of the differencebetween density A and density B. In other words, the smaller thepredefined value is set, the higher quality of result can be obtained,whereas a larger predefined value results in a somewhat degraded qualityin exchange of a reduced processing time. Therefore, if the user wantsto obtain a high quality result, a small predefined value should bechosen, whereas a large predefined value should be set if fast printingis desired without requiring a quality so high. In this manner, a resultaccording to the user's request can be obtained.

Third Embodiment

Although the first embodiment described an example of letting the userdetermine the pattern density adjustment and the second embodimentdescribed an example of automating the user's determination, the presentembodiment describes, using the flow of FIG. 20, an example ofdisplaying a warning and letting the user perform correction in asemiautomatic manner.

First, in step 1901, the CPU 11 executes default setting of the initialvalue of the adjusted color value. Specifically, an unadjusted state isprovided by setting the adjusted color value equal to 0.

Next, in step 1002, the CPU 11 analyzes the PDL data to be defined asimage data for printing with regard to whether or not a semi-transparentobject is included in the PDL data created by an application as shown inFIG. 2. Specifically, the semi-transparent object of the object 301shown in FIG. 3 is extracted. However, if there is no semi-transparentobject, the process is simply terminated.

When a semi-transparent object is detected, the CPU 11 extracts, in step1003, the color value (halftone value) for filling the semi-transparentobject extracted in step 1002. With the object 301 of FIG. 3, forexample, the value is 16 as shown in FIG. 7.

Next, in step 1004, the CPU 11 converts, according to the initial valueof the adjusted color value preliminarily provided with a defaultsetting in step 1901, the color value from the input color value intothe output color value, using a conversion table shown in FIG. 12. Here,the table bearing the reference numeral 1201 is set as the default tablewhich has been set up in step 1901, and the input value 16 is simplyoutput as being 16. In this manner, the halftone value of thesemi-transparent object is converted into the output value, whereby thehalftone value of the semi-transparent object before screen processingis acquired.

Subsequently, the CPU 11 generates semi-transparent image data byoverlaying the semi-transparent object whose halftone value has beenconverted and the PDL data to be rendered semi-transparent.

Next, in step 1902, the CPU 11 calculates the density of a predefinedrange of the generated semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 7, and stores the calculated density inthe RAM 13 as density A. In the case of FIG. 7, there are a total of3328 levels for multi-value 64 gradations, and the number of dots thatwill be ideally arranged when binarized is 3328/64=52, resulting in adensity of A=52.

Next, in step 1005, the CPU 11 executes screen processing on thegenerated semi-transparent image data. Binarization is executed usingthe dither shown in FIG. 6, for example. Since binarization has alreadybeen described in the conventional example, detailed description will beomitted here. The result of binarization turns out to be the data shownin FIG. 8.

Next, in step 1903, the CPU 11 calculates the density of a predefinedrange of the binarized semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 8, and stores it in the RAM 13 as densityB. In the case of FIG. 8, the number of dots that will be arranged whenbinarized is 24, resulting in a density of B=24.

Next, in step 1904, the CPU 11 compares the number of dots within apredefined range of the semi-transparent image data before screenprocessing with that of the semi-transparent image data after screenprocessing, and determines whether or not the absolute value of thedifference between the input value and the output value is equal to orlarger than a predefined value. In the following description, thepredefined value is assumed to be 5. Here, density A=52 and densityB=24, thus the absolute value of the difference between the input valueand the output value is 28, which exceeds the predefined value of 5.

The CPU 11 then proceeds to step 2001 and displays a numeric alarm onthe display unit 15 warning that the predefined difference of 5 isoutnumbered by 28. The user knows by the warning that the difference ofdensity before and after screen processing is large, and provides aninput to the image processor via the input operation unit 14 indicatingthat the user will proceed to adjustment processing of the adjustedcolor value. Based on the user's input, the CPU 11 determines that thecurrent result is not OK (step 1007), and proceeds to adjustmentprocessing of the adjusted color value of step 1008.

In this occasion, with the first embodiment, there was no other way forthe user than to verify the difference on the screen. With the presentembodiment, however, the user can see from the numeral whether or not toadjust the adjustment value larger: in this case, due to the largedifference of 28, the adjustment value is adjusted by +2. Therefore, theuser performs an adjustment of +2 on the pattern density adjustment bar1101 using the input operation unit 14, and the CPU 11 acquires, basedon the user's input, the adjusted color value.

Next, the CPU 11 returns to step 1004 and sets up the table 1203 as thetable of adjusted color values which have been increased by +2 (adjustedcolor value) in step 1008, and modifies the input value from 16 to 24.In this manner, the halftone value of the semi-transparent object isconverted into the output value, whereby the halftone value of thesemi-transparent object before screen processing is acquired.

Subsequently, the CPU 11 generates semi-transparent image data byoverlaying the semi-transparent object whose halftone value has beenconverted and the PDL data to be rendered semi-transparent.

Although the CPU 11 proceeds to step 1902 next, the step is passedthrough in this occasion since density A has already been acquired.

Next, in step 1005, the CPU 11 executes screen processing on thegenerated semi-transparent image data. Similarly with the previousround, binarization is executed using the dither shown in FIG. 6. Theresult of binarization turns out to be the data shown in FIG. 18.

Next, in step 1903, the CPU 11 calculates the density of a predefinedrange of the generated semi-transparent image data such as the range ofthe 15×15 matrix shown in FIG. 18, and updates the previous value storedin the RAM 13 with the result of calculation as density B. In the caseof FIG. 18, the number of dots that will be arranged when binarized is56, resulting in a density of B=56.

Next, in step 1904, the CPU 11 compares the number of dots within apredefined range of the semi-transparent image data before screenprocessing with that of the semi-transparent image data after screenprocessing, and determines whether or not the difference between theinput value and the output value is equal to or larger than a predefinedvalue. Here, density A=52 and density B=56, thus the difference betweenthe input value and the output value is 4, which is smaller than thepredefined value of 5. Now that the absolute value of the differencebetween density A and density B has eventually become smaller than thepredefined value of 5, the CPU 11 terminates the processing and proceedsto printing, although not shown.

Specifically, the CPU 11 outputs the semi-transparent object afterdither processing to the printer (output destination). Alternatively,the CPU 11 outputs the semi-transparent object whose halftone value hasbeen already adjusted (to be 24) to the printer which, having executeddither processing again, prints the semi-transparent object. It isneedless to say that, the dither processing executed in this occasion isidentical to the dither processing executed in step 1005. In otherwords, the dither threshold value array used is identical.

As thus described, with the present embodiment, the number of dotswithin a predefined range of the semi-transparent image data beforescreen processing is compared with the number of dots of thesemi-transparent image data after screen processing and, if thedifference between the input value and the output value is larger thanor equal to a predefined value, a warning with regard to the magnitudeof the difference is displayed. Therefore, in addition to the effect ofthe first embodiment, it becomes easier for the user to determine howmuch the adjustment should be made.

Fourth Embodiment

Although, in the first embodiment, a case has been described in whichthe images to be printed are monochromatic, the present embodimentdescribes a processing of color images using the flow of FIG. 21.

In the present embodiment, since the image specified by the user is acolor image, a semi-transparent object for each color is used. In otherwords, a semi-transparent object for overlaying on the Red data(semi-transparent object for R) is provided, from the PDL data, as thesemi-transparent object. Similarly, a semi-transparent object foroverlaying on the Green data (semi-transparent object for G) and asemi-transparent object for overlaying on the Blue data(semi-transparent object for B) are provided. The semi-transparentobjects for R, G and B can be preliminarily stored in the ROM 12 or thelike.

In the present embodiment, the user is allowed to provide the adjustedcolor value setting for Red (R), Green (G) and Blue (B), respectively,as shown in the pattern density adjustment bar 2201 of FIG. 22.Therefore, when the user operates the pattern density bar 2201 via theinput operation unit 14 to set the adjusted color value for each of thecolors R, G and B, the CPU 11 defines, in step 2101, the values whichhave been set as initial values of the adjusted color value forrespective colors. Then the values are stored in the RAM 13. Shipmentmay be made with the initial state staying in the middle, or unadjusted,so that it is possible to preliminarily set the adjustment according tothe user's preference.

Note that, in FIG. 22, background of the circle is light green.

Next, in step 1002, the CPU 11, analyzes the PDL data to be defined asimage data for printing, with regard to whether or not semi-transparentobjects for respective colors R, G and B are included in the PDL datawhich has been created in the application. If semi-transparent objectsfor respective colors R, G and B do not exist, the process is simplyterminated.

If semi-transparent objects for respective colors R, G and B aredetected, the CPU 11 extracts, in step 2102, the color values forfilling the semi-transparent objects acquired in step 1002 forrespective colors R, G and B. For example, when the background color tobe rendered semi-transparent is light green, the color values are(R,G,B)=(204,255,204), each of which appears as shown in FIG. 23 for thecolors Red, Green and Blue.

Description will be provided dividing each of the colors Red, Green andBlue into channels. First, since the underlying object on which thesemi-transparent object is overlaid is a black circle, the channel ofeach of the colors Red, Green and Blue turns out to be the same objectbearing the reference numeral 2302.

Next, the semi-transparent object will be described. Starting from thedescription of the Red channel, in order to create a filled portion andan unfilled portion through which the underlying object can be seen dueto specifying the object to be semi-transparent, an object having alattice pattern (semi-transparent object) 2301 is drawn with Red=204,where the degree of filling being reduced by a certain interval. Next,the underlying object 2302 is drawn. Finally, the two objects 2301 and2302 are overlaid, whereby drawing an object 2303. Next, the case ofGreen channel will be described. Since the color specification of thebackground to be rendered semi-transparent is Green=255, the fillingcolor turns out to be white, in other words, the object is drawn withoutbeing filled, as with the object 2304.

Next, the underlying object 2302 is drawn. Finally, the two objects 2304and 2302 are overlaid, which results in drawing an object 2305.

Next, the case of Blue channel will be described. In order to create afilled portion and an unfilled portion through which the underlyingobject can be seen due to specifying the object to be semi-transparent,an object having a lattice pattern (semi-transparent object) 2301 isdrawn with Blue=204, where the degree of filling being reduced by acertain interval. This part, having the same value as with Red, turnsout to be the same pattern. Next, the underlying object 2302 is drawn.Finally, the two objects 2301 and 2302 are overlaid, which results indrawing an object 2303. By channel synthesizing the objects 2303 and2305 of the colors Red, Green and Blue, the final color image iscompleted. From the finished color image, it can be seen thatsemi-transparent is achieved in such a manner that the circle includedin object 2302 is drawn to be visible through the specified fillingcolor (light green in this case) extracted in the filling colorspecification 2102.

Next, in step 2103, the CPU 11 converts the color value from the inputcolor value into the output color value using the conversion table shownin FIG. 24 according to the adjusted color value setting which has beenpreliminarily set in step 2101 or the color value adjusted in step 2106.Here, a table bearing the reference numeral 2401 is set as the initialvalue. Thus, for colors Rand B, for example, the halftone value 204 ofthe semi-transparent object for R and the semi-transparent object for Bis simply output as 204 as input value. The difference with the firstembodiment is that, since RGB indicates brightness, table 2401 ismodified to table 2402 for a deeper density. In this manner, thehalftone value of the semi-transparent objects for respective colors R,G and B is converted.

Subsequently, the CPU 11 generates semi-transparent image data for R, Gand B, respectively by overlaying the semi-transparent object forrespective colors R, G and B whose halftone value has been converted andrespective R, G and B data of the PDL data to be renderedsemi-transparent.

In other words, the CPU 11 generates semi-transparent image data for Rby overlaying the semi-transparent object for R whose halftone value hasbeen converted and the Red data of the PDL data to be renderedsemi-transparent. In this occasion, as described with the firstembodiment, the semi-transparent object for R whose halftone value hasbeen converted and the Red data of the PDL data to be renderedsemi-transparent are not deleted from the RAM 13 and remain therein.Similarly, the CPU 11 generates semi-transparent image data for G byoverlaying the semi-transparent object for G whose halftone value hasbeen converted and the Green data of the PDL data to be renderedsemi-transparent. The semi-transparent object for G whose halftone valuehas been converted and the Green data of the PDL data to be renderedsemi-transparent are also left without being deleted from the RAM 13.Furthermore, the CPU 11 generates semi-transparent image data for B byoverlaying the semi-transparent object for B whose halftone value hasbeen converted and the Blue data of the PDL data to be renderedsemi-transparent. The semi-transparent object for B whose halftone valuehas been converted and the Blue data of the PDL data to be renderedsemi-transparent also remain in the RAM 13 without being deleted.

Now, the semi-transparent objects for respective colors R, G and Bremaining in the RAM 13 are semi-transparent objects before screenprocessing.

In the case of color printing, the printer used for printing typicallyoutputs in Cyan (C), Magenta (M), Yellow (Y) and Black (K). Therefore,screen processing is also executed in Cyan, Magenta, Yellow and Black,and the CPU 11 converts the input RGB signal from RGB to CMYK, in step2104. In other words, the CPU 11 executes color conversion on thegenerated R, G and B semi-transparent image data to generate C, M, Y andK semi-transparent image data. Color conversion from RGB to a CMYK isexecuted by color management processing using color profile processingor the like.

Next, as shown in the first embodiment which has described a monochromeexample, the CPU 11 executes, in step 1005, screen processing on C, M, Yand K semi-transparent image data. As screen processing, binarization isexecuted using the dither which has been set in Cyan, Magenta, Yellowand Black of respective colors, similarly with the case of binarizationusing the dither shown in FIG. 6 as a processing on a monochrome image,for example. In this occasion, a semi-transparent object disappeared dueto monochrome screen processing, and it may also disappear in the caseof a color image due to interference by dither, as with a monochromeimage.

Next, since the image after screen processing is data of Cyan, Magenta,Yellow and Black, it is required to be converted into RGB data to bedisplayed on the screen of the display unit 15. Thus, in step 2105, theCPU 11 converts the data from CMYK to RGB to convert the screenprocessed C, M, Y and K semi-transparent image data into thecorresponding R, G and B data. Also the color conversion from CMYK intoRGB is executed by color management processing using color profileprocessing.

Next, in step 1006, the CPU 11 displays, on the display unit 15, R, Gand B data which has been converted in step 2105 to confirm whether ornot the semi-transparent object which originally existed has disappeareddue to screen processing.

Next, in step 1007, the CPU 11 examines, as with the first embodiment,whether or not the result is OK. If the result of verification is notOK, the CPU 11 proceeds to step 2106 and adjusts the color value of eachof the RGB colors. In this occasion, the user adjusts the patterndensity adjustment bar 2201 of FIG. 22 to switch from table 2401 totable 2402 or table 2403 so that the adjustment table of FIG. 24represents deeper colors. Upon receiving the user's input with regard toadjustment, the CPU 11 acquires adjusted color values (R, G, B)corresponding to the user's input.

After the adjustment in step 2106, the CPU 11 returns again to the RGBcolor value conversion of step 2103 to process each color, and displaysthe result on the display unit 15 in step 1006. Then the CPU 11 examinesthe result and terminates the processing if the result is OK, whereasthe CPU 11 executes the adjustment again using the pattern densityadjustment bar 2201 of FIG. 22 in the RGB adjustment value adjustment ofstep 2106, if the result is not OK.

In step 1007, if the semi-transparent object turns out to be OK incomparison with the original image as the result of the densityadjustment, the print preview is terminated and the CPU 11 proceeds toprinting.

In the present embodiment, as thus described, it becomes possible tooutput an image with a density close to the original by simply modifyingthe density of the halftone pattern (halftone value) of thesemi-transparent object by the present method using color data,similarly as with monochromatic data. Additionally, since dither of thescreen processing is not modified, it is possible to simply apply thedither representing the intention of the designer or the user who isattempting, as the original purpose, to smoothly reproduce the image ina uniform color or gradation, and reproduce the image without degradingthe reproducibility of the semi-transparent object. Furthermore, onlythe density of the semi-transparent object needs to be adjusted using asimple conversion such as that shown in FIG. 24 without requiring anyadvanced processing such as conventional frequency analysis. Therefore,processing by software is not time-consuming, and when processing byhardware, a simple circuit can be used without scaling-up the hardware.

Other Embodiments

The present invention can either be applied to a system comprising aplurality of units (e.g., a computer, an interface device, a reader, aprinter, etc.), or applied to an apparatus comprising a single unit (acompound machine, a printer, a facsimile machine, etc.).

A processing method of storing, in a storage medium, a program whichcauses the arrangement of the above-mentioned embodiment to operate soas to realize the functionality of the above-mentioned embodiment;reading out the program stored in the storage medium as codes; andexecuting the program on a computer is also included in the scope of theabove-mentioned embodiment. In other words, computer readable storagemedia are included in the scope of the embodiments. Additionally, it isneedless to say that the computer program in itself is included in theabove-mentioned embodiment as with the storage medium in which theabove-mentioned computer program is stored.

As such storage media, floppy (registered trademark) disks, hard-disks,optical disks, magneto-optical disks, CD-ROM, magnetic tapes, nonvolatile memory cards, ROM, for example, can be used.

Additionally, the method is not limited to one that executes theprocessing with a single program stored in the above-mentioned storagemedia, but any method operating on the OS and execute the operation ofthe above-mentioned embodiment in conjunction with functionality ofother software or extended board may also be included in the scope ofthe above-mentioned embodiments.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2007-284074, filed Oct. 31, 2007, which is hereby incorporated byreference herein in its entirety.

1. An image processor comprising: a determination component configuredto determine whether or not a semi-transparent object is included in animage to be printed; and a control component configured to control sothat the result of dither processing on the image to be printed isdisplayed on a display screen if it is determined by the determinationcomponent that a semi-transparent object is included, and configured tocontrol so that the result of dither processing on the image to beprinted is not displayed on a display screen if it is determined by thedetermination component that a semi-transparent object is not included.2. An image processor comprising: a dither processing componentconfigured to perform dither processing on a semi-transparent object; aacquisition component configured to acquire a difference between thedensity of the image obtained by the dither processing and the densityof the semi-transparent object; and a modification component configuredto modify the halftone value of the semi-transparent object if thedifference acquired by the acquisition component exceeds a thresholdvalue.
 3. The image processor according to claim 2, wherein, if thehalftone value of the semi-transparent object is modified by themodification component, the dither processing component further performsdither processing on a semi-transparent object after its halftone valuehas been modified by the modification component, and the ditherprocessing, the acquisition of the difference, and the modification ofthe halftone value are repeated until the difference acquired by theacquisition component becomes equal to or smaller than a thresholdvalue.
 4. An image processor comprising: a determination componentconfigured to determine whether or not an image with periodicallyvarying density is included in the image to be printed; and a controlcomponent configured to control so that the result of dither processingon the image to be printed is displayed on a display screen if it isdetermined by the determination component that an image withperiodically varying density is included, and configured to control sothat the result of dither processing on the image to be printed is notdisplayed on a display screen if it is determined by the determinationcomponent that an image with periodically varying density is notincluded.
 5. An image processor comprising: a generation componentconfigured to generate image data having a semi-transparent objectoverlaid thereon by overlaying a semi-transparent object on the imagedata; a performing component configured to perform screen processing bydither processing on the image data having the semi-transparent objectoverlaid thereon; a determination component configured to determinewhether or not to define the screen processed image data having asemi-transparent object overlaid thereon as image data for printing; anda modification component configured to modify the halftone value of thesemi-transparent object to be larger than the current value if thedetermination component determines not to define the image data having asemi-transparent object overlaid thereon as image data for printing,wherein, if the halftone value is modified by the modificationcomponent, the generation component generates image data having thesemi-transparent object overlaid thereon by overlaying on the image dataa semi-transparent object whose halftone value has been modified.
 6. Theimage processor according to claim 5, wherein the determinationcomponent comprises: a component configured to display the screenprocessed image data having a semi-transparent object overlaid thereon;and a component configured to receive user's input with regard to theimage data displayed by the display component, and wherein thedetermination component determines, based on the user's input, whetheror not to define the image data having semi-transparent object overlaidthereon as image data for printing.
 7. The image processor according toclaim 5, wherein the determination component comprises: a componentconfigured to acquire a number of first dots arranged in a predefinedrange of an image data having overlaid thereon the semi-transparentobject before the screen processing; a component configured to acquire anumber of second dots arranged in a predefined range of an image datahaving overlaid thereon the semi-transparent object after the screenprocessing; and a component configured to calculate the absolute valueof the difference between the number of first dots arranged and thenumber of second dots arranged, and wherein the determination componentdefines the image data having the semi-transparent object overlaidthereon as the image data for printing if the absolute value is smallerthan a predefined value.
 8. The image processor according to claim 7,wherein the determination component further comprises: a componentconfigured to display the absolute value if the absolute value is largerthan or equal to a predefined value.
 9. An image processor comprising: adither processing component configured to perform dither processing on asemi-transparent object whose halftone value has been set; a calculationcomponent configured to calculate the difference between the density ofthe semi-transparent object after the dither processing and the densityof the semi-transparent object before the dither processing; an inputcomponent configured to set higher the halftone value of thesemi-transparent object and inputting the semi-transparent object intothe dither processing component again, if the difference is larger thanor equal to a threshold value; and an output component configured tooutput the dither-processed semi-transparent object, if the differenceis smaller than a threshold value.
 10. An image processor comprising: adither processing component configured to perform dither processing on asemi-transparent object whose halftone value has been set; a calculationcomponent configured to calculate the difference between the density ofthe semi-transparent object after the dither processing and the densityof the semi-transparent object before the dither processing; an inputcomponent configured to set higher the halftone value of thesemi-transparent object and inputting the semi-transparent object intothe dither processing component again, if the difference is larger thanor equal to a threshold value; and an output component configured tooutput the semi-transparent object before the dither processing, if thedifference is smaller than a threshold value, wherein thesemi-transparent object which has been output by the output component isdither processed in the output destination.
 11. An image processingmethod comprising: a determination process for determining whether ornot a semi-transparent object is included in an image to be printed; anda control process for controlling so that a result of dither processingon the image to be printed is displayed on a display screen if it isdetermined by the determination process that a semi-transparent objectis included, and controlling so that a result of dither processing onthe image to be printed is not displayed on a display screen if it isdetermined by the determination process that a semi-transparent objectis not included.
 12. A computer program for causing a computer toperform the image processing method according to claim
 11. 13. A storagemedium having a computer readable program stored therein and having thecomputer program according to claim 12 stored therein.